#!/bin/bash

# Docker环境启动脚本 - 同时启动Ollama和Flask应用

echo "=== 启动 Tiny QA Docker 服务 ==="

# 检查Ollama是否已安装
if ! command -v ollama &> /dev/null; then
    echo "错误: Ollama未安装，请先安装Ollama"
    exit 1
fi

# 启动Ollama服务（后台运行）
echo "启动Ollama服务..."
ollama serve &
OLLAMA_PID=$!

# 等待Ollama服务启动
echo "等待Ollama服务启动..."
sleep 5

# 检查Ollama服务是否正常
for i in {1..10}; do
    if curl -s http://localhost:11434/api/tags > /dev/null 2>&1; then
        echo "Ollama服务启动成功"
        break
    else
        echo "等待Ollama服务启动... ($i/10)"
        sleep 2
    fi
done

# 检查并下载必要的模型
echo "检查AI模型..."
python scripts/check-models.sh

# 如果模型不存在，自动下载默认模型
echo "检查默认模型..."
if ! curl -s http://localhost:11434/api/tags | grep -q "deepseek-r1:1.5b"; then
    echo "默认模型不存在，正在下载..."
    ollama pull deepseek-r1:1.5b
    echo "默认模型下载完成"
else
    echo "默认模型已存在"
fi

# 启动Flask应用
echo "启动Flask应用..."
echo "访问地址: http://localhost:5002"
echo "按 Ctrl+C 停止所有服务"
echo ""

# 启动Flask应用（前台运行）
python app.py

# 当Flask应用停止时，也停止Ollama
echo "停止Ollama服务..."
kill $OLLAMA_PID
wait $OLLAMA_PID 2>/dev/null
echo "所有服务已停止" 